﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
using GestorDeFlotasDesktop.Classes;

namespace GestorDeFlotasDesktop.AbmChofer
{
    public partial class NuevoChofer : Form
    {
        private bool alta;

        public NuevoChofer()
        {
            InitializeComponent();
            alta = true;
        }

        public NuevoChofer(Chofer c)
        {
            InitializeComponent();
            populateFields(c);
            alta = false;
        }

        private void populateFields(Chofer c)
        {
            txtApellido.Text = c.strApellido;
            txtNombre.Text = c.strNombre;
            txtDNI.Text = Convert.ToString(c.intDNI);
            txtMail.Text = c.strMail;
            txtTelefono.Text = Convert.ToString(c.intTelefono);
            txtDireccion.Text = c.strDireccion;
            txtPostal.Text = c.strCodigoPostal;
            dtpNacimiento.Value = c.dtmFechaNacimiento;
            chkHabilitado.Checked = c.blnHabilitado;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            txtApellido.Text = string.Empty;
            txtNombre.Text = string.Empty;
            txtDNI.Text = string.Empty;
            txtMail.Text = string.Empty;
            txtTelefono.Text = string.Empty;
            txtDireccion.Text = string.Empty;
            txtPostal.Text = string.Empty;
        }

        private bool camposCompletos()
        {
            if (
            txtApellido.Text == string.Empty ||
            txtNombre.Text == string.Empty ||
            txtDNI.Text == string.Empty ||
            txtTelefono.Text == string.Empty ||
            txtDireccion.Text == string.Empty ||
            txtPostal.Text == string.Empty)
                return false;
            else
                return true;
        }


        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (!camposCompletos())
            {
                MessageBox.Show("Todos los campos deben estar completos. Por favor, llene el formulario antes de continuar.");
                return;
            }

            List<SqlParameter> Parameters = new List<SqlParameter>();
            Parameters.Add(new SqlParameter("@nombre", txtNombre.Text));
            Parameters.Add(new SqlParameter("@apellido", txtApellido.Text));
            Parameters.Add(new SqlParameter("@dni", Convert.ToInt32(txtDNI.Text)));
            Parameters.Add(new SqlParameter("@mail", txtMail.Text));
            Parameters.Add(new SqlParameter("@direccion", txtDireccion.Text));
            Parameters.Add(new SqlParameter("@cpostal", txtPostal.Text));
            Parameters.Add(new SqlParameter("@telefono", Convert.ToInt32(txtTelefono.Text)));
            Parameters.Add(new SqlParameter("@fechaNac", dtpNacimiento.Value));

            SqlInterface.Conectar();
            int result;
            if (alta == true)
            {
                result = SqlInterface.ExecuteNonQuery("SQUIRTLE.spCrearChofer", CommandType.StoredProcedure, Parameters);
            }
            else
            {
                Parameters.Add(new SqlParameter("@Habilitado", chkHabilitado.Checked));
                result = SqlInterface.ExecuteNonQuery("SQUIRTLE.spModificacionChofer", CommandType.StoredProcedure, Parameters);
            }

            if (result == -1)
                MessageBox.Show("Ha habido un error al guardar el chofer. Verifique los datos e intentelo nuevamente");
            else
                MessageBox.Show("El chofer ha sido guardado con éxito.");

            Parameters.Clear();
            SqlInterface.Desconectar();
            this.Close();
        }

        private void NuevoChofer_Load(object sender, EventArgs e)
        {

        }
    }
}
